using IM.Easy.Infrastructure.Query;
using System.ComponentModel.DataAnnotations;


namespace IM.Easy.SystemServices.Dtos
{
    /// <summary>
    /// 第三方平台账户基本信息查询实体
    /// </summary>
    public class ExternalUserAccountQueryDto : QueryBase
    {
        /// <summary>
        /// 用户名
        /// </summary>
        public string UserName { get; set; }

        /// <summary>
        /// 外部平台标识
        /// </summary>
        public string Provider { get; set; }
    }

    /// <summary>
    /// 绑定账户dto
    /// </summary>
    public class BindUserDto
    {
        /// <summary>
        /// 外部平台标识
        /// </summary>
        public string Provider { get; set; }

        /// <summary>
        /// 回调验证码
        /// </summary>
        public string Code { get; set; }

        /// <summary>
        /// 回调验证地址
        /// </summary>
        public string RedirectUrl { get; set; }
    }

    /// <summary>
    /// 第三方平台账户基本信息dto
    /// </summary>
    public class ExternalUserAccountDto
    {
        /// <summary>
        /// 
        /// </summary>
        public long Id { get; set; }
        /// <summary>
        /// 系统内用户 ID
        /// </summary>
        public long UserId { get; set; }
        /// <summary>
        /// 外部平台标识
        /// </summary>
        public string Provider { get; set; }
        /// <summary>
        /// 外部平台用户唯一 ID
        /// </summary>
        public string ProviderUserId { get; set; }
        /// <summary>
        /// 用户名
        /// </summary>
        public string UserName { get; set; }
        /// <summary>
        /// 显示名
        /// </summary>
        public string NickName { get; set; }
        /// <summary>
        /// 邮箱地址
        /// </summary>
        public string Email { get; set; }
        /// <summary>
        /// 头像 URL
        /// </summary>
        public string AvatarUrl { get; set; }
        /// <summary>
        /// 授权范围
        /// </summary>
        public string Scope { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreatedAt { get; set; }
        /// <summary>
        /// 创建人ID
        /// </summary>
        public long CreatedBy { get; set; }
        /// <summary>
        /// 更新时间
        /// </summary>
        public DateTime UpdatedAt { get; set; }
        /// <summary>
        /// 更新人ID
        /// </summary>
        public long UpdatedBy { get; set; }
        /// <summary>
        /// 是否已删除
        /// </summary>
        public byte IsDeleted { get; set; }
        /// <summary>
        /// 删除人ID
        /// </summary>
        public long DeletedBy { get; set; }
        /// <summary>
        /// 删除时间
        /// </summary>
        public DateTime DeletedAt { get; set; }
    }
}
